JavaScript 变量
阐述
语法
用 var, let, 或 const 定义变量,变量命名可以用包括字母、下划线、$ 和数字在内的大多数 Unicode 字符,但不能以数字开头。const 变量必须初始化。变量初始化时支 持 JavaScript 解构赋值。
语义
var 和 let 变量不初始化时默认为 undefined。
var
var 用于声明全局、模块或函数作用域内的变量。不在任何函数内定义的变量具有全局作用域;以变量方式定义的函数也是一个全局变量。
由于 var 变量不具有块作用域,它在函数体内的实际行为是「变量提升」,即表现得如同在函数开头声明或全局开头声明一样。
- 被提升的值在实际赋值前获得值
undefined;所以我们如果要使用var变量,最好在函数内部首先声明所有变量。 - 被提升的函数将与其定义一同提升
let
let 除了 var 的语义外,还可以声明块作用域(如 if, while, for 等的花括号)内的变量。
const
const 用于定义全局、模块、函数或块作用域内的常量。
全局变量
在浏览器中,全局作用域的变量本质上是 window 的一个属性,可以用 window.xxx 访问;在所有环境中,都可以用 globalThis 来指代这个全局对象。